{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import QUANTAXIS as QA\n",
    "import sys\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "Account=QA.QA_Account(allow_sellopen=True,init_cash=10000,allow_t0=True,account_cookie='future_test',market_type=QA.MARKET_TYPE.FUTURE_CN,frequence=QA.FREQUENCE.FIFTEEN_MIN)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "Broker=QA.QA_BacktestBroker()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "rb_ds=QA.QA_fetch_future_min_adv('RBL8','2018-01-01','2018-01-30',frequence='60min')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "def MACD_JCSC(dataframe,SHORT=12,LONG=26,M=9):\n",
    "    \"\"\"\n",
    "    1.DIF向上突破DEA，买入信号参考。\n",
    "    2.DIF向下跌破DEA，卖出信号参考。\n",
    "    \"\"\"\n",
    "    CLOSE=dataframe.close\n",
    "    DIFF =QA.EMA(CLOSE,SHORT) - QA.EMA(CLOSE,LONG)\n",
    "    DEA = QA.EMA(DIFF,M)\n",
    "    MACD =2*(DIFF-DEA)\n",
    "\n",
    "    CROSS_JC=QA.CROSS(DIFF,DEA)\n",
    "    CROSS_SC=QA.CROSS(DEA,DIFF)\n",
    "    ZERO=0\n",
    "    return pd.DataFrame({'DIFF':DIFF,'DEA':DEA,'MACD':MACD,'CROSS_JC':CROSS_JC,'CROSS_SC':CROSS_SC,'ZERO':ZERO})\n",
    "\n",
    "ind=rb_ds.add_func(MACD_JCSC)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "< QA_Order realorder_id Order_2GOMToa5 datetime:2018-01-16 10:00:00 code:RBL8 amount:1 price:0 towards:2 btype:future_cn order_id:Order_2GOMToa5 account:future_test status:queued >\n",
      "< QA_DataStruct_Future_min with 1 securities >\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "< QA_Order realorder_id Order_mS1l3HL2 datetime:2018-01-25 10:00:00 code:RBL8 amount:1 price:0 towards:2 btype:future_cn order_id:Order_mS1l3HL2 account:future_test status:queued >\n",
      "< QA_DataStruct_Future_min with 1 securities >\n",
      "receive deal\n",
      "try to settle\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n"
     ]
    }
   ],
   "source": [
    "_date = None\n",
    "for items in rb_ds.panel_gen:\n",
    "    if _date != items.date[0]:\n",
    "        print('try to settle')\n",
    "        _date=items.date[0]\n",
    "        Account.settle()\n",
    "    \n",
    "    \n",
    "    for item in items.security_gen:\n",
    "        daily_ind=ind.loc[item.index]\n",
    "        if daily_ind.CROSS_JC.iloc[0]>0:\n",
    "            order=Account.send_order(\n",
    "                code=item.code[0], \n",
    "                time=item.datetime[0], \n",
    "                amount=1, \n",
    "                towards=QA.ORDER_DIRECTION.BUY_OPEN, \n",
    "                price=0, \n",
    "                order_model=QA.ORDER_MODEL.CLOSE, \n",
    "                amount_model=QA.AMOUNT_MODEL.BY_AMOUNT\n",
    "                )\n",
    "\n",
    "            if order:\n",
    "                print(order)\n",
    "                print(item)\n",
    "                Broker.receive_order(QA.QA_Event(order=order,market_data=item))\n",
    "\n",
    "\n",
    "                trade_mes=Broker.query_orders(Account.account_cookie,'filled')\n",
    "                res=trade_mes.loc[order.account_cookie,order.realorder_id]\n",
    "                order.trade(res.trade_id,res.trade_price,res.trade_amount,res.trade_time)\n",
    "        elif daily_ind.CROSS_SC.iloc[0]>0:\n",
    "            if Account.sell_available.get(item.code[0], 0)>0:\n",
    "                order=Account.send_order(\n",
    "                    code=item.code[0], \n",
    "                    time=item.datetime[0], \n",
    "                    amount=Account.sell_available.get(item.code[0], 0), \n",
    "                    towards=QA.ORDER_DIRECTION.SELL_CLOSE, \n",
    "                    price=0, \n",
    "                    order_model=QA.ORDER_MODEL.MARKET, \n",
    "                    amount_model=QA.AMOUNT_MODEL.BY_AMOUNT\n",
    "                    )\n",
    "                if order:\n",
    "                    Broker.receive_order(QA.QA_Event(order=order,market_data=item))\n",
    "\n",
    "\n",
    "                    trade_mes=Broker.query_orders(Account.account_cookie,'filled')\n",
    "                    res=trade_mes.loc[order.account_cookie,order.realorder_id]\n",
    "                    order.trade(res.trade_id,res.trade_price,res.trade_amount,res.trade_time)\n",
    "    Account.settle()\n",
    "            "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>datetime</th>\n",
       "      <th>code</th>\n",
       "      <th>price</th>\n",
       "      <th>amount</th>\n",
       "      <th>cash</th>\n",
       "      <th>order_id</th>\n",
       "      <th>realorder_id</th>\n",
       "      <th>trade_id</th>\n",
       "      <th>account_cookie</th>\n",
       "      <th>commission</th>\n",
       "      <th>tax</th>\n",
       "      <th>message</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2018-01-16 10:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3828.0</td>\n",
       "      <td>1</td>\n",
       "      <td>6171.043000</td>\n",
       "      <td>Order_2GOMToa5</td>\n",
       "      <td>Order_2GOMToa5</td>\n",
       "      <td>Trade_yBz1nKDg</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.957000</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2018-01-22 23:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3916.5</td>\n",
       "      <td>-1</td>\n",
       "      <td>10086.563875</td>\n",
       "      <td>Order_2saOWLFB</td>\n",
       "      <td>Order_2saOWLFB</td>\n",
       "      <td>Trade_iUp3KEwZ</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.979125</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2018-01-25 10:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3959.0</td>\n",
       "      <td>1</td>\n",
       "      <td>6126.574125</td>\n",
       "      <td>Order_mS1l3HL2</td>\n",
       "      <td>Order_mS1l3HL2</td>\n",
       "      <td>Trade_WUnc1JwD</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.989750</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2018-01-26 10:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3946.5</td>\n",
       "      <td>-1</td>\n",
       "      <td>10072.087500</td>\n",
       "      <td>Order_Y67soCPe</td>\n",
       "      <td>Order_Y67soCPe</td>\n",
       "      <td>Trade_3YCMN4fJ</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.986625</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              datetime  code   price  amount          cash        order_id  \\\n",
       "0  2018-01-16 10:00:00  RBL8  3828.0       1   6171.043000  Order_2GOMToa5   \n",
       "1  2018-01-22 23:00:00  RBL8  3916.5      -1  10086.563875  Order_2saOWLFB   \n",
       "2  2018-01-25 10:00:00  RBL8  3959.0       1   6126.574125  Order_mS1l3HL2   \n",
       "3  2018-01-26 10:00:00  RBL8  3946.5      -1  10072.087500  Order_Y67soCPe   \n",
       "\n",
       "     realorder_id        trade_id account_cookie  commission  tax message  \n",
       "0  Order_2GOMToa5  Trade_yBz1nKDg    future_test    0.957000    0    None  \n",
       "1  Order_2saOWLFB  Trade_iUp3KEwZ    future_test    0.979125    0    None  \n",
       "2  Order_mS1l3HL2  Trade_WUnc1JwD    future_test    0.989750    0    None  \n",
       "3  Order_Y67soCPe  Trade_3YCMN4fJ    future_test    0.986625    0    None  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Account.history_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "86.563875"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "88.5 -1.936125"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n初始资金10000\\n\\n买入 3828.0  手续费 0.957\\n\\n可用资金为:  10000 - 3828.0 -0.957 = 6171.043\\n\\n买入==冻结正常\\n\\n\\n卖出(平多仓)\\n3916.5 卖出  手续费 0.979125\\n\\n结算出  赚(3916.5-3828.0)=88.5 价差 手续费 0.957+0.979125 =1.936125\\n合计赚 88.5 -1.936125 =86.563875\\n\\n正确 \\n\\n\\n当前资金  \\t10086.563875\\n\\n\\n\\n\\n'"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"\n",
    "初始资金10000\n",
    "\n",
    "买入 3828.0  手续费 0.957\n",
    "\n",
    "可用资金为:  10000 - 3828.0 -0.957 = 6171.043\n",
    "\n",
    "买入==冻结正常\n",
    "\n",
    "\n",
    "卖出(平多仓)\n",
    "3916.5 卖出  手续费 0.979125\n",
    "\n",
    "结算出  赚(3916.5-3828.0)=88.5 价差 手续费 0.957+0.979125 =1.936125\n",
    "合计赚 88.5 -1.936125 =86.563875\n",
    "\n",
    "正确 \n",
    "\n",
    "\n",
    "当前资金  \t10086.563875\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "rb_dayds=QA.QA_fetch_future_day_adv('RBL8','2018-01-01','2018-08-28')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "Risk=QA.QA_Risk(Account,if_fq=False,market_data=rb_dayds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<module 'matplotlib.pyplot' from 'C:\\\\ProgramData\\\\Anaconda3\\\\lib\\\\site-packages\\\\matplotlib\\\\pyplot.py'>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAALiCAYAAADjF/bnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3XdYVNfWBvCXZm+oKRhQMBjRYYahSlEBkXItWIIVFVGsGBILajTW6GeNGiwxXmMgRrFgFGOsWFExCAZRiQYNqBETKYIiSt3fHwzniswgKIkxeX/Pk+feObPP3uuccNbsdVq0hBACREREREREBO1XHQAREREREdHfBQskIiIiIiIiFRZIREREREREKiyQiIiIiIiIVFggERERERERqbBAIiIiIiIiUmGBREREREREpMICiYiIXpqxsTHq1q2LBg0aQF9fH927d8ft27crtJs7dy60tLQQGxtbbnlBQQEmT54MQ0NDNGjQACYmJpg4cWK5/qOioqTPd+/exciRI2FgYICGDRvCzMwMc+bMwaNHjyqMmZqaCi0tLRQVFQEAhg8fXiGG69evQ0tLS/rs4uKCOnXqoEGDBtI/MTExAAAhBJYtW4Y2bdqgbt26aNmyJaZPn478/PwX3HtERPR3wgKJiIhqxPfff4/c3FzcvXsXb731Fj744INy3wshsHnzZjRt2hRhYWHlvlu0aBHi4uIQGxuLhw8f4vjx47C0tFQ7TlZWFhwcHPD48WPExMTg4cOHOHLkCLKzs3Hjxo0qxdq0aVN88sknlbZZs2YNcnNzpX8cHBwAAEFBQdiwYQO++eYbPHz4EAcOHMCxY8fQv3//Ko1NRER/byyQiIioRtWpUwc+Pj5ISkoqtzw6OhppaWn4/PPPsW3bNhQUFEjfnT9/Hn369EGLFi2gpaUFY2NjDBs2TG3/K1asQMOGDfHtt9/C2NgYAGBkZITPP/8cCoWiSjH6+fkhMTERJ0+erNa2JScnY926ddiyZQscHBygq6sLmUyGXbt24eDBgzh27Fi1+iMior8fFkhERFSj8vLysH37dtjb25dbHhYWhp49e2LAgAEAgH379knf2dvbY8WKFVi3bh0uXboEIYTG/qOiotC3b19oa7/4T1i9evUwY8YMzJw5s1rrHT16FIaGhrCzsyu33MjICPb29jhy5MgLx0RERH8PLJCIiKhG9O7dG02aNEGjRo1w5MgRBAcHS9/l5eVh586dGDx4MPT09ODj41PuNruPP/4Y06ZNw5YtW2BjY4N33nmnwm14ZTIzM2FgYPDS8Y4ZMwa3bt3CgQMH1H4fFBSEJk2aoEmTJrCysgIAZGRkaBzbwMAAGRkZLx0XERG9WiyQiIioRuzZswfZ2dnIz8/HmjVr4OzsjN9//x0AsHv3bujq6qJbt24AAF9fXxw4cADp6ekAAB0dHQQGBuLMmTPIzs7GzJkzMWLECPz8888VxmnWrBnu3r370vHWrl0bs2bNwqxZs9ResQoJCUF2djays7Nx4cIFAEDz5s01jn337l00b978peMiIqJXiwUSERHVKB0dHfTt2xc6Ojo4ffo0gNLb63Jzc9GyZUu8/fbb6NevHwoLCxEeHl5h/bp16yIwMBD6+voVnmMCgK5du2L37t0oKSl56Vj9/f2Rk5OD3bt3V6l9ly5dcPv27Qpv4bt9+zbOnTsHNze3l46JiIheLRZIRERUo4QQiIyMxP3799GuXTvcuXMHR48exb59+5CQkICEhARcvHgR06ZNk26jW7VqFU6cOIHHjx+jqKgIYWFhePjwodo32U2aNAkPHjyAn58fbt68CQC4c+cOJk2ahMTExGrFqquri7lz52LJkiVVav/ee+9h7Nix8PX1xblz51BcXIwrV67g/fffR9euXdG1a9dqjU9ERH8/LJCIiKhG9OzZEw0aNECjRo0wc+ZMhIWFQSaTYfPmzVAqlfDw8MDbb78t/RMUFITExERcvnwZdevWxeTJk/H222+jefPmWLt2LXbt2oXWrVtXGKdp06Y4e/Ys9PT00KFDBzRs2BBubm5o3LgxTE1Nqx33oEGDqvVM05o1axAQEIAhQ4agQYMG8PLygouLC3bt2lXtsYmI6O9HS1T2qiAiIiIiIqJ/EV5BIiIiIiIiUmGBREREREREpMICiYiIiIiISIUFEhERERERkQoLJCIiIiIiIhUWSERERERERCoskIiIiIiIiFRYIBEREREREamwQCIiIiIiIlJhgURERERERKTCAomIiIiIiEiFBRIREREREZEKCyQiIiIiIiIVFkhEREREREQqLJCIiIiIiIhUWCARERERERGpsEAiIiIiIiJSYYFERERERESkwgKJiIiIiIhIhQUSERERERGRCgskIiIi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MnfuXMTFxUGhUGD69OkICwvT2LY6ea6y/AeUnpXdtm0bjh8/XuFNkgEBAWjfvj2srKxgbm6OMWPGqH2bVrdu3cq9zU8dmUwGKyurF94/tWrVQkREBKZNmwYLCwsolcoae6MnUU3S09PD7Nmz0aFDB/To0QNmZmYASl96MmTIEMjlclhaWmLixIlo0qQJZs2ahcLCQigUCpibm2PWrFlVHsvLywve3t6wsbGBUqmUTkKEhYUhODgYCoUCCQkJ0p0WmpaXmTRpEqysrDB06NByV8Hat2+PBQsWwMPDAwqFAu7u7mpfkjJ79mzs3bu30phr1aqFoKAgqdh6Xo5SJyQkRMqX7du3x/r165+/s4jU0BLVvd+DiOgfLDU1FT169MDly5dfdShERET0Cry2V5CIiIiIiIhqGq8g/QkOHTpU4b8pYmJiUqVnmf6tMjMzpf9m1dOOHj2KZs2avYKIiP6+vv76a3z++eflljk5OWHt2rWvKCIiehUuXbokveWyTO3atfHjjz++ooiI/hlYIBEREREREanwFjsiIiIiIiIVFkhEREREREQqLJCIiIiIiIhUWCARERERERGpsEAiIiIiIiJSYYFERERERESkwgKJiIiIiIhIhQUSERERERGRCgskIiIiIiIiFRZIREREREREKiyQiIiIiIiIVFggERERERERqbBAIiIiIiIiUmGBREREREREpMICiYiIiIiISIUFEhERERERkQoLJCIiIiIiIhUWSERERERERCoskIiIiIiIiFRYIBEREREREamwQCIiIiIiIlJhgURERERERKTCAomIiIiIiEiFBRIREREREZEKCyQiIiIiIiIVFkhEREREREQqLJCIiIiIiIhUWCARERERERGpsEAiIiIiIiJSYYFERERERESkwgKJiIiIiIhIhQUSERERERGRCgskIiIiIiIiFRZIREREREREKiyQiIiIiIiIVFggERERERERqbBAIiIiIiIiUnltC6TU1FSYm5v/qWMYGxsjIyPjTx0DAIYPH46IiIg/fRwXFxfExcXVSF+LFi2Cqakp2rZti0OHDknLDx48iLZt28LU1BSLFy+WlqekpKBDhw5o06YNBgwYgIKCAgDA+vXrIZfLoVQq0bFjRyQlJb3wGEQ1ITs7G+vWrZM+p6WlwcfH5xVGVLMKCgrg7+8PuVwOCwsLnDhx4lWHRER/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vML2ww8/hL+//yuKiIhe1qVLlzB06NByy2rXro0ff/zxFUVERERE1cUrSERERERERCqv7VvsiIiIiIiIahoLJCIiIiIiIhUWSERERERERCoskIiIiIiIiFRYIBEREREREamwQCIiIiIiIlJhgURERERERKTCAomIiIiIiEiFBRIREREREZEKCyQiIiIiIiIVFkhEREREREQqLJCIiIiIiIhUWCARERERERGpsEAiIiIiIiJSYYFERERERESkwgKJiIiIiIhIhQUSERERERGRCgskIiIiIiIiFRZIREREREREKiyQiIiIiIiIVFggERERERERqbBAIiIiIiIiUmGBREREREREpMICiYiIiIiISIUFEhERERERkQoLJCIiIiIiIhUWSERERERERCoskIiIiIiIiFRYIBEREREREamwQCIiIiIiIlJhgURERERERKTCAomIiIiIiEiFBRIREREREZEKCyQiIiIiIiIVFkhEREREREQqLJCIiIiIiIhUWCARERERERGpsEAiIiIi+ptJTU2Fubn5c9ts3bpV+hwXF4egoCAAQGhoKCZMmAAAWL9+Pb755htpeVpaWo3EKIRAUFAQTE1NoVAocOHCBbXt4uPjIZfLYWpqiqCgIAghAABz587FO++8A6VSCaVSif3799dIXEQv67UukBwdHZ/bJiAgAElJSQCA//u///uzQ8KJEyfQo0ePF14/MzMTrq6uaNCggZTYymhKMFlZWXB3d0ebNm3g7u6O+/fvA6g8cYWFhaFNmzZo06YNwsLC1MbyIv0S/RM0aNDghdZbtWoV8vLyajiaqnl2ovQyTp06BSsrK+jq6iIiIqLcd5pyh6b8NGDAAGnyY2xsDKVSCQA4cuQIrK2tIZfLYW1tjWPHjqmNRVMeun//Pvr06QOFQgE7Oztcvny5Rrad6HXy7HFvY2ODkJCQCu3Gjh2LYcOGAajZAunAgQNITk5GcnIyNmzYgHHjxqltN27cOGzYsEFqe/DgQem7iRMnIiEhAQkJCejWrVuNxEX0sl7rAuns2bPPbbNx40a0b98ewF9TIL2sOnXq4NNPP8Xy5csrfKcpwSxevBhubm5ITk6Gm5sbFi9eDEBz4srKysK8efPw448/IjY2FvPmzZMmHU+rbr9E/3b/lAKpZcuWCA0NxeDBg8stryx3aMpP27dvlyY/77//Pvr27QsAaN68Ob7//ntcunQJYWFhGDp0qNpYNOWh//u//4NSqURiYiK++eYbfPjhhzWy7UR/lmnTpmHdunXS57lz5+Kzzz6DEALBwcEwNzeHXC7H9u3bK6ybmpqKTp06wcrKClZWVtL8Z/r06YiOjoZSqcTKlSs1nqSdO3culi9fjoiICMTFxcHX1xdKpRI//PAD+vTpI7U7cuSIdIxWRWRkJIYNGwYtLS3Y29sjOzsbd+/eLdfm7t27ePDgARwcHKClpYVhw4Zhz549VR6D6FV4rQuksrO8J06cgIuLC3x8fGBmZgZfX1/p7KWLiwvi4uIwffp0PH78GEqlEr6+vhr7/Oabb6BQKGBhYSH9YH///ffo0KEDLC0t0bVrV/zxxx8AgJMnT0pnRi0tLfHw4UMAQG5urtpYqqJ+/fro2LEj6tSpU255ZQkmMjISfn5+AAA/P79yy9UlrkOHDsHd3R1NmzaFvr4+3N3dy53NKVPdfon+aXJzc+Hm5gYrKyvI5XJERkYCAB49eoTu3bvDwsIC5ubm2L59O0JCQpCWlgZXV1e4urpq7HPcuHGwsbGBTCbDnDlzpOXTp09H+/btoVAoMGXKFADAzp07YW5uDgsLC3Tu3BkAUFxcjODgYNja2kKhUODLL7+U1n96onTlyhXY2dlBqVRCoVAgOTm5ytttbGwMhUIBbe3yPxGackdVJkBCCOzYsQODBg0CAFhaWqJFixYAAJlMhidPniA/P79CLJryUFJSEtzc3AAAZmZmSE1NlXIz0d/RwIEDyxU/O3bsQL9+/fDdd98hISEBFy9eRFRUFIKDgyv8pr755ps4cuQILly4gO3bt0u30S1evBidOnVCQkICJk6c+NwYfHx8YGNjgy1btkhXbH7++Wekp6cDAL7++mv4+/tXWG/27NnYu3dvheV37tyBkZGR9NnQ0BB37typ0MbQ0FBjmzVr1kChUGDEiBFqT9YSvQq6rzqAmvLTTz/hypUraNGiBZycnHDmzBl07NhR+n7x4sVYs2YNEhISNPZx5coVLFy4EGfOnEHz5s2RlZUFAOjYsSPOnTsHLS0tbNy4EUuXLsVnn32G5cuXY+3atXByckJubq5U1DwvFqD0fmCg9LJ3VVSWYP744w8YGBgAAAwMDHDv3j1pHXWJqyoJ7UX6LWtL9E9Rp04d7N69G40aNUJGRgbs7e3h7e2NgwcPokWLFvjhhx8AADk5OWjcuDFWrFiB48ePo3nz5hr7XLhwIZo2bYri4mK4ubkhMTERhoaG2L17N65evQotLS38P3v3HRbF1bAN/F52Yem9ig1BRZGigthRmh3FEvuHPtFoookxMTGaaBKjiSYaY6KxxF4e30RjfyyoiMYWW7AmKggKgkhbkM7uzvcH60RkaYqCeP+ui0uZOXPmzAjj3HvOnFEoFACAOXPm4NChQ3B0dBSXrVmzBmZmZjh//jwKCgrQqVMnBAcHY/78+Vi4cCH27dsHAHj33XcxZcoUjBw5EoWFhVCpVKXaMm7cOEycOBHe3t6VOh/lXVPKuwECgD/++AN2dnZo2rRpqXp///13tG7dGnK5vNS6sq5Dnp6e2LFjBzp37oxz587h7t27SEhIgJ2dXaWOhehla926NR4+fIjExESkpKTAwsICDRs2xOLFizF8+HBIpSsrrDkAACAASURBVFLY2dnBz88P58+fh4eHh7htUVERJk+ejKioKEilUty6data2iSRSDB69Ghs3rwZY8eOxZkzZ8RnlZ40Z84crdtr+wBYIpFUuszbb7+NWbNmQSKRYNasWfjwww+xdu3aZzkUompVZwJSu3btxP+gvby8EBcXVyqUVCQiIgKDBw8Wb24sLS0BAAkJCRg6dCiSkpJQWFgIJycnAECnTp3wwQcfYOTIkRg4cKC4/8q0pbLB6LHKXIQqu82z1PW8bSF6FQmCgJkzZ+LEiRPQ0dHB/fv3kZycDHd3d0ybNg3Tp09H37590aVLl0rX+dtvv2HVqlVQKpVISkrCjRs30LJlS+jr62PcuHHo06ePOESmU6dOGDNmDN544w1x2Et4eDiuXLkiPhuUmZmJ27dvQ09Pr8R+OnTogHnz5iEhIQEDBw7UGkxWr15d5fPxtMpeU7Zu3Sr2Hj3p+vXrmD59OsLDw6vUlk8++QRTpkyBl5cX3N3d0bp1a8hkdea/NKqjBg8ejO3bt+PBgwcYNmwYAO2/V09bvHgx7OzscPnyZajV6lKjTJ7H2LFj0a9fP+jr62PIkCFV+j2qX78+4uPjxe8TEhLEnuEnyyQkJGgt8+QHGuPHj3+uZ7iJqtMrPcTuSU9+8iiVSqFUKqtchyAIWm/03333XUyePBlXr17FypUrkZ+fD6D4P+jVq1cjLy8P7du3xz///FNtbXlaRReYx93xSUlJsLW1FbfRduGqzAXtWeolqmu2bNmClJQUXLx4EVFRUbCzs0N+fj6aNWsmTkowY8aMMj9dfVpsbCwWLlyIo0eP4sqVK+jTpw/y8/Mhk8lw7tw5DBo0CLt27ULPnj0BFPc0z507F/Hx8fDy8kJaWhoEQcBPP/0kPtcTGxuL4ODgUvsaMWIE9uzZAwMDA/To0aPMSRCqorxrSlnXJwBQKpXYsWMHhg4dWqK+hIQEhIaGYuPGjXB2dta6z7KuQ6ampli3bh2ioqKwceNGpKSkiB9eEdVWw4YNw//93/9h+/btGDx4MACga9eu+PXXX6FSqZCSkoITJ06gXbt2JbbLzMyEg4MDdHR0sGnTJrFH2MTERBzeX1lPb1OvXj3Uq1cPc+fOxZgxY6pUV0hICDZu3AhBEHD27FmYmZmVGk3i4OAAExMTnD17FoIgYOPGjejfvz8AlBhKuHPnzgpn7SN6WepMQKoMXV1dFBUVlbk+ICAAv/32G9LS0gBAHGKXmZkJR0dHACgxa1NMTAzc3d0xffp0eHt7iwHpRSjvAhMSEiK2a8OGDSWWa7tw9ejRA+Hh4cjIyEBGRgbCw8PRo0ePUvusar1EdU1mZiZsbW2hq6uLY8eO4e7duwCAxMREGBoaYtSoUZg2bZo4k2NFNytZWVkwMjKCmZkZkpOTceDAAQDFzzplZmaid+/e+OGHH8ShwDExMfD19cWcOXNgbW2N+Ph49OjRA8uXLxevZbdu3UJOTk6pfd+5cwdNmjTBe++9h5CQEFy5cuW5z0dZ147yrk8AcOTIEbi6upYYhqdQKNCnTx9888036NSpU5n7LOs6pFAoUFhYCKC4J6xr164wNTV97mMkepHc3Nzw6NEjODo6iv9vPp6N0dPTE/7+/vj2229hb29fYrt33nkHGzZsQPv27XHr1i0YGRkBADw8PCCTyeDp6YnFixdXqg1jxozBxIkT4eXlhby8PADAyJEj0aBBA3FSq6eV9QxS79690aRJE7i4uGD8+PElJqF4PGMlACxfvhzjxo2Di4sLnJ2d0atXLwDAxx9/DHd3d3h4eODYsWOVPgaiF054hRkZGQmCIAjHjh0T+vTpIy6fNGmSsG7dOkEQBMHPz084f/68IAiC8PHHHwuurq7CiBEjyqxz/fr1gpubm+Dh4SGEhYUJgiAIu3btEpycnITOnTsL06ZNE/z8/ARBEITJkyeLZYcNGybk5+eX25YnLV++XFi+fLnWNjRq1EiwsLAQjIyMBEdHR+H69euCIAjC+fPnBTc3N6FJkybCpEmTBLVaLQiCIKSmpgr+/v6Ci4uL4O/vL6SlpQmCIAhqtVp45513hCZNmgitWrUSz4MgCMKaNWsEZ2dnwdnZWVi7dq24/M033xTLPUu9RHXB42tLSkqK0L59e6Ft27bCm2++Kbi6ugqxsbHCwYMHBXd3d8HT01Pw9vYWfwd+/PFHoXnz5kK3bt3KrDssLExwdXUVevfuLYSGhgrr1q0TEhMTBR8fH8Hd3V1o1aqVsH79ekEQBCE0NFRo1aqV4ObmJrz33nuCWq0WVCqVMGPGDHF5t27dBIVCIRQWFgr+/v6Ch4eH8P333wtff/210LJlS8HT01Po0aOH+Pv7pCd/35907tw5wdHRUTA0NBQsLS2Fli1biuvKunaUdX16fMxPX++++uorwdDQUPD09BS/kpOTS7WrrOvQ6dOnBRcXF6F58+ZCaGiokJ6eXs6/KBGVZ9KkScLq1atruhlEtYZEEKowxRoRERER1Rlt27aFkZERDh8+rHWiFKLXEQMSERERERGRxms55U9aWpr4/ownHT16FFZWVjXQIiKqa3x9fUu912fTpk1wd3evoRYRERFRZbAHiYiIiIiISOO1msWOiIiIiIioPAxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGnUyIDVu3BipqanPXaY6bNiwAU2bNkXTpk2xYcOGcssuXLgQEolEbFdGRgZCQ0Ph4eGBdu3a4dq1ay+8vUSvu7i4OLRq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aN++vdZyLVq0wIYNG+Dh4YH09HS8/fbb5db78ccfY8aMGejUqZN4YdCmMs8gWVpaYtasWfDx8YGPjw9mz54tfsI7btw4XLhwodzt//77b7i5ucHV1RUHDhzAkiVLKtwnET0/bdcNPT09bN++HdOnT4enpye8vLxw+vRpAMCYMWMwceJEeHl5QS6XY/z48XB3d8eAAQPg4+OjdR/lPYPUpUsXDBkyBEePHkX9+vVx6NAhAMDs2bOxZ88eAMCbb76JtLQ0uLi44Pvvv8f8+fNfwJkgoupy9epVtGvXDl5eXpg3bx4+++yzcstX9n4EADp06IBPPvkErVq1gpOTE0JDQ2FjY4P169dj+PDh8PDwQPv27cUJIJ5U1jNIJ06cgIeHBzw9PTF48GCsWLFC6z3M5MmT8ejRIwQFBZU7HTjRq0Qi1OFpj+Li4tC3b1++P4iIiIjqpMjISCxcuFDrZDBE9Gxe2R4kIiIiIiKi6lane5CIiIiIiIiqgj1IREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREREREREGgxIREQv2YMHD6Cvrw97e3sUFRWVWp+Wlob33nsPTk5OkMvlsLGxQZcuXbB161axTF5eHmbNmoWmTZvCwMAAVlZW8PHxwY8//iiW+eKLLyCRSLR+paamonHjxmWuf/xVkYULF0IqleKDDz4otS4uLg4SiQTGxsZITEwsse6LL76Ai4uL+P369evFfero6MDU1BTu7u6YNGkS/v777wrbMWbMmBLtNjMzQ4cOHbB///4S5bp166b1OFu1alWqzJIlS7Qez8mTJ0ssP3PmDAYOHAg7Ozvo6+vD2dkZo0aNwqVLl8QyEokEmzdvLrHdvHnzoKenh02bNpU4hkGDBpU6vl27dkEikUAmk2k9/r59+0IqlWLPnj2l1j15biUSCWxsbBAUFISzZ8+WKvd0/WlpaejQoQNcXV0RFxendd9ERHUNAxIR0Uu2du1a9OnTB1ZWVti9e3ep9YMGDcKJEyewcuVK3Lp1CwcPHsTw4cORlpYmlnn77bexceNGfPfdd7hx4wYiIiIwadIkKBSKEnU1btwYSUlJpb6srKxw/vx58fvHN/O///57iXIV+eWXXzBz5kxs3LgRBQUFWsuo1WrMnDmzwrqkUimSkpKQmJiIS5cuYe7cuYiOjoaXlxd+//33Crfv0qWL2O6zZ8+iTZs2GDBgAGJiYkqUGzFiRKnzcfz48RJlDAwM8OWXXyI9Pb3cfa5btw5dunSBrq4utmzZgr///hu//vorGjdujClTpmjdRq1W45133sH8+fOxb98+jB49WlzXsGFD7N27F8nJySW2WbVqFRo1aqS1vvj4eERERGDatGlY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mXbs2KH/+Z//0axZs/TNb35T+/fv169+9SsVFhYqJSVFX/va1zRlyhSHnyEAoCeigwQA6HFaW1v16KOPavr06frVr36lSy+9VB988IEkyRijWbNmacWKFVqxYoXi4uL07LPPSpJuuOEGnXvuubr11lv1wgsv6Jvf/Kaampr005/+VNOmTdMzzzyj7373u3r22We1d+9eJ58iAKCHIiABAHqc7du3KxQK6corr5Tb7dbkyZM1cuRISVJycrImT56s+Ph4JSYm6tprr9Vnn312zJ+1fv16paena/bs2XK5XMrOztakSZO0du3as/V0AABRhCV2AIAep7KyUn6/v31ZnSSlpaVJkpqbm/X8889rw4YNqq+vlyQ1NjYqHA4rJubI9/3Kysq0Y8cO3XLLLe23hUIhzZgxo3ufBAAgKhGQAAA9js/nUyAQkDGmPSRVVFRo0KBB+tOf/qTi4mItWrRI/fv31+7du/WDH/xAxhhJ6hSqJCk1NVVjx47V/ffff9afBwAg+rDEDgDQ44wePVoxMTF67bXXFAqF9MEHH2jnzp2SpKamJsXFxSkpKUl1dXX6/e9/3+l7vV6vDh482P71xRdfrJKSEq1Zs0atra1qbW3Vzp07tW/fvrP6nAAA0cEybW+5AQDQg+zatUtPPfWUDhw4oAsvvFCSNHjwYM2bN09PPPGEdu3aJb/fr6uuukpPP/20XnrpJblcLm3fvl3Lly9XTU2Npk+frltvvVXFxcV6/vnntXPnThljNHz4cN18880aMWKEs08SANDjEJAAAAAAIIIldgAAAAAQQUACAAAAgAgCEgAAAABEEJAAAAAAIIKABAAAAAARBCQAAAAAiCAgAQAAAEAEAQkAAAAAIghIAAAAABDx/wOrCTP68hrsggAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1008x864 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "Risk.plot_assets_curve()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'total_buyandsell': 76.0,\n",
       " 'total_tax': 0.0,\n",
       " 'total_commission': -3.91,\n",
       " 'total_profit': 72.09}"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Risk.profit_construct"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "Account=QA.QA_Account(allow_sellopen=True,init_cash=10000,allow_t0=True,account_cookie='future_test',market_type=QA.MARKET_TYPE.FUTURE_CN,frequence=QA.FREQUENCE.FIFTEEN_MIN)\n",
    "rb_ds=QA.QA_fetch_future_min_adv('RBL8','2018-01-01','2018-01-30',frequence='60min')\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "def MACD_JCSC(dataframe,SHORT=12,LONG=26,M=9):\n",
    "    \"\"\"\n",
    "    1.DIF向上突破DEA，买入信号参考。\n",
    "    2.DIF向下跌破DEA，卖出信号参考。\n",
    "    \"\"\"\n",
    "    CLOSE=dataframe.close\n",
    "    DIFF =QA.EMA(CLOSE,SHORT) - QA.EMA(CLOSE,LONG)\n",
    "    DEA = QA.EMA(DIFF,M)\n",
    "    MACD =2*(DIFF-DEA)\n",
    "\n",
    "    CROSS_JC=QA.CROSS(DIFF,DEA)\n",
    "    CROSS_SC=QA.CROSS(DEA,DIFF)\n",
    "    ZERO=0\n",
    "    return pd.DataFrame({'DIFF':DIFF,'DEA':DEA,'MACD':MACD,'CROSS_JC':CROSS_JC,'CROSS_SC':CROSS_SC,'ZERO':ZERO})\n",
    "\n",
    "ind=rb_ds.add_func(MACD_JCSC)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "< QA_Order realorder_id Order_ql1PWScR datetime:2018-01-11 23:00:00 code:RBL8 amount:1 price:0 towards:-2 btype:future_cn order_id:Order_ql1PWScR account:future_test status:queued >\n",
      "< QA_DataStruct_Future_min with 1 securities >\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "1\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "< QA_Order realorder_id Order_PleM5thI datetime:2018-01-22 23:00:00 code:RBL8 amount:1 price:0 towards:-2 btype:future_cn order_id:Order_PleM5thI account:future_test status:queued >\n",
      "< QA_DataStruct_Future_min with 1 securities >\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n",
      "try to settle\n",
      "1\n",
      "receive deal\n",
      "try to settle\n",
      "< QA_Order realorder_id Order_sDAZdh3u datetime:2018-01-26 10:00:00 code:RBL8 amount:1 price:0 towards:-2 btype:future_cn order_id:Order_sDAZdh3u account:future_test status:queued >\n",
      "< QA_DataStruct_Future_min with 1 securities >\n",
      "receive deal\n",
      "try to settle\n",
      "try to settle\n"
     ]
    }
   ],
   "source": [
    "_date = None\n",
    "for items in rb_ds.panel_gen:\n",
    "    if _date != items.date[0]:\n",
    "        print('try to settle')\n",
    "        _date=items.date[0]\n",
    "        Account.settle()\n",
    "    \n",
    "    \n",
    "    for item in items.security_gen:\n",
    "        daily_ind=ind.loc[item.index]\n",
    "        if daily_ind.CROSS_SC.iloc[0]>0:\n",
    "            order=Account.send_order(\n",
    "                code=item.code[0], \n",
    "                time=item.datetime[0], \n",
    "                amount=1, \n",
    "                towards=QA.ORDER_DIRECTION.SELL_OPEN, \n",
    "                price=0, \n",
    "                order_model=QA.ORDER_MODEL.CLOSE, \n",
    "                amount_model=QA.AMOUNT_MODEL.BY_AMOUNT\n",
    "                )\n",
    "\n",
    "            if order:\n",
    "                print(order)\n",
    "                print(item)\n",
    "                Broker.receive_order(QA.QA_Event(order=order,market_data=item))\n",
    "\n",
    "\n",
    "                trade_mes=Broker.query_orders(Account.account_cookie,'filled')\n",
    "                res=trade_mes.loc[order.account_cookie,order.realorder_id]\n",
    "                order.trade(res.trade_id,res.trade_price,res.trade_amount,res.trade_time)\n",
    "        elif daily_ind.CROSS_JC.iloc[0]>0:\n",
    "            if Account.sell_available.get(item.code[0], 0)<0:\n",
    "                print(1)\n",
    "                order=Account.send_order(\n",
    "                    code=item.code[0], \n",
    "                    time=item.datetime[0], \n",
    "                    amount=abs(Account.sell_available.get(item.code[0], 0)), \n",
    "                    towards=QA.ORDER_DIRECTION.BUY_CLOSE, \n",
    "                    price=0, \n",
    "                    order_model=QA.ORDER_MODEL.MARKET, \n",
    "                    amount_model=QA.AMOUNT_MODEL.BY_AMOUNT\n",
    "                    )\n",
    "                if order:\n",
    "                    Broker.receive_order(QA.QA_Event(order=order,market_data=item))\n",
    "\n",
    "\n",
    "                    trade_mes=Broker.query_orders(Account.account_cookie,'filled')\n",
    "                    res=trade_mes.loc[order.account_cookie,order.realorder_id]\n",
    "                    order.trade(res.trade_id,res.trade_price,res.trade_amount,res.trade_time)\n",
    "    Account.settle()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>datetime</th>\n",
       "      <th>code</th>\n",
       "      <th>price</th>\n",
       "      <th>amount</th>\n",
       "      <th>cash</th>\n",
       "      <th>order_id</th>\n",
       "      <th>realorder_id</th>\n",
       "      <th>trade_id</th>\n",
       "      <th>account_cookie</th>\n",
       "      <th>commission</th>\n",
       "      <th>tax</th>\n",
       "      <th>message</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2018-01-11 23:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3811.0</td>\n",
       "      <td>-1</td>\n",
       "      <td>6188.047250</td>\n",
       "      <td>Order_ql1PWScR</td>\n",
       "      <td>Order_ql1PWScR</td>\n",
       "      <td>Trade_rZRbPdB6</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.952750</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2018-01-16 10:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3817.5</td>\n",
       "      <td>1</td>\n",
       "      <td>9989.687375</td>\n",
       "      <td>Order_VLGB8UTf</td>\n",
       "      <td>Order_VLGB8UTf</td>\n",
       "      <td>Trade_q6TkQIbh</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.954375</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2018-01-22 23:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3914.0</td>\n",
       "      <td>-1</td>\n",
       "      <td>6074.708875</td>\n",
       "      <td>Order_PleM5thI</td>\n",
       "      <td>Order_PleM5thI</td>\n",
       "      <td>Trade_PrQ03wG7</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.978500</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2018-01-25 10:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3952.0</td>\n",
       "      <td>1</td>\n",
       "      <td>9947.763875</td>\n",
       "      <td>Order_RzyJFOYp</td>\n",
       "      <td>Order_RzyJFOYp</td>\n",
       "      <td>Trade_QMqKvcCX</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.988000</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2018-01-26 10:00:00</td>\n",
       "      <td>RBL8</td>\n",
       "      <td>3934.0</td>\n",
       "      <td>-1</td>\n",
       "      <td>6012.780375</td>\n",
       "      <td>Order_sDAZdh3u</td>\n",
       "      <td>Order_sDAZdh3u</td>\n",
       "      <td>Trade_Juyh0EKN</td>\n",
       "      <td>future_test</td>\n",
       "      <td>0.983500</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              datetime  code   price  amount         cash        order_id  \\\n",
       "0  2018-01-11 23:00:00  RBL8  3811.0      -1  6188.047250  Order_ql1PWScR   \n",
       "1  2018-01-16 10:00:00  RBL8  3817.5       1  9989.687375  Order_VLGB8UTf   \n",
       "2  2018-01-22 23:00:00  RBL8  3914.0      -1  6074.708875  Order_PleM5thI   \n",
       "3  2018-01-25 10:00:00  RBL8  3952.0       1  9947.763875  Order_RzyJFOYp   \n",
       "4  2018-01-26 10:00:00  RBL8  3934.0      -1  6012.780375  Order_sDAZdh3u   \n",
       "\n",
       "     realorder_id        trade_id account_cookie  commission  tax message  \n",
       "0  Order_ql1PWScR  Trade_rZRbPdB6    future_test    0.952750    0    None  \n",
       "1  Order_VLGB8UTf  Trade_q6TkQIbh    future_test    0.954375    0    None  \n",
       "2  Order_PleM5thI  Trade_PrQ03wG7    future_test    0.978500    0    None  \n",
       "3  Order_RzyJFOYp  Trade_QMqKvcCX    future_test    0.988000    0    None  \n",
       "4  Order_sDAZdh3u  Trade_Juyh0EKN    future_test    0.983500    0    None  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Account.history_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9991.592875"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "10000-6.5-1.907125\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n初始资金10000\\n\\n\\n卖空开仓:3811.0 手续费 0.952750\\n\\n冻结资金 3811.95275\\n应剩余 6188.04725  ==> 此处冻结错误\\n\\n\\n买入平仓 \\t3817.5\\t 手续费0.954375\\n\\n买卖盈亏(3811.0-3817.5) = -6.5 手续费合计1.907125\\n\\n应剩余资金 10000-6.5-1.907125 = 9991.592875  ==> 恢复后依然正确\\n\\n\\n\\n\\n'"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"\n",
    "初始资金10000\n",
    "\n",
    "\n",
    "卖空开仓:3811.0 手续费 0.952750\n",
    "\n",
    "冻结资金 3811.95275\n",
    "应剩余 6188.04725 \n",
    "\n",
    "\n",
    "买入平仓 \t3817.5\t 手续费0.954375\n",
    "\n",
    "买卖盈亏(3811.0-3817.5) = -6.5 手续费合计1.907125\n",
    "\n",
    "应剩余资金 10000-6.5-1.907125 = 9991.592875  ==> 恢复后依然正确\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\"\"\""
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
